# Darren
# 2025年02月21日20时18分37秒
# 二进制模式 原有模式标识尾部加‘b' 对电影，音频等文件进行操作,不用encoding
import os


def open_rb():
    file = open('Guitar.png', 'rb')
    content_bytes = file.read()
    file1 = open('Guitar[副本].png', 'wb')
    file1.write(content_bytes)  # 图片复制
    # print(content_bytes)
    file.close()
    file1.close()


# seek 文件指针定位 seek()
# seek(offset,whence)
# 文本模式 offset>0 往后移
# 二进制模式 offset可以小于零 往前偏

# whence 0:开头 1:当前位置 2：文件末尾
# SEEK_SET = 0
# SEEK_CUR = 1
# SEEK_END = 2

# 中间，或者尾部的相对位置时，offset只能是 0
def use_seek():
    file = open('file1', 'r+', encoding='utf8')
    # file.seek(5, os.SEEK_SET)  # UnicodeDecodeError utf8编码每个汉字占3个字节，偏移量需为3的倍数
    file.seek(6, os.SEEK_SET)  # 指针相对 开头 偏移 6个字节
    txt = file.read()
    print(txt)
    file.close()


def use_seek_w():
    file = open('file1', 'w+', encoding='utf8')  # 'w+' 可读可写，文件不存在会创建，文件存在则覆盖
    file.write("helloworld")
    file.seek(0, os.SEEK_SET)  # 指针回到开头
    txt = file.read()
    print(txt)
    file.close()


# open_rb()
# use_seek()
use_seek_w()
